/**
 * size位二选一选择器
 * 1. 条件操作符(?:)
 * 2. 重复操作符({})
 * 3. 书P57 连续赋值语句assign
 **/

module scale_mux #(
    parameter size = 8
) (
    output [size-1 : 0] out,
    input [size-1 : 0] a, b,
    input sel
);

    assign out = (!sel)? a :
                (sel)? b :
                    {size{1'B0}};

endmodule